<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
    <NoWarn>$(NoWarn);1634;1691;649</NoWarn>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <!-- Too much private reflection. Do not bother with trimming -->
    <ILLinkTrimAssembly>false</ILLinkTrimAssembly>
    <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile>
  </PropertyGroup>

  <PropertyGroup>
    <RuntimeSerializationSources>System\Runtime\Serialization</RuntimeSerializationSources>
    <JsonSources>System\Runtime\Serialization\Json</JsonSources>
    <XmlSources>System\Xml</XmlSources>
    <TextSources>System\Text</TextSources>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="$(CommonPath)System\NotImplemented.cs" Link="Common\System\NotImplemented.cs" />
    <Compile Include="$(CommonPath)System\HexConverter.cs" Link="Common\System\HexConverter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\AccessorBuilder.cs" />
    <Compile Include="$(RuntimeSerializationSources)\Attributes.cs" />
    <Compile Include="$(RuntimeSerializationSources)\BitFlagsGenerator.cs" />
    <Compile Include="$(RuntimeSerializationSources)\CodeGenerator.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ClassDataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\CollectionDataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DateTimeOffsetAdapter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DictionaryGlobals.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataContractResolver.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataContractSerializer.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataContractSerializerExtensions.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataContractSerializerSettings.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataContractSet.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataContractSurrogateCaller.cs" />
    <Compile Include="$(RuntimeSerializationSources)\DataMember.cs" />
    <Compile Include="$(RuntimeSerializationSources)\EnumDataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ExceptionUtility.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ExportOptions.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ExtensionDataObject.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ExtensionDataReader.cs" />
    <Compile Include="$(RuntimeSerializationSources)\Globals.cs" />
    <Compile Include="$(RuntimeSerializationSources)\GenericParameterDataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\HybridObjectCache.cs" />
    <Compile Include="$(RuntimeSerializationSources)\IExtensibleDataObject.cs" />
    <Compile Include="$(RuntimeSerializationSources)\KnownTypeDataContractResolver.cs" />
    <Compile Include="$(RuntimeSerializationSources)\MemoryStreamAdapter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ObjectReferenceStack.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ObjectToIdCache.cs" />
    <Compile Include="$(RuntimeSerializationSources)\PrimitiveDataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ReflectionClassWriter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ReflectionReader.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ReflectionXmlFormatReader.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ReflectionXmlFormatWriter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\SchemaExporter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\SchemaHelper.cs" />
    <Compile Include="$(RuntimeSerializationSources)\SchemaImporter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\ScopedKnownTypes.cs" />
    <Compile Include="$(RuntimeSerializationSources)\SerializationOption.cs" />
    <Compile Include="$(RuntimeSerializationSources)\SpecialTypeDataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlDataContract.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlFormatGeneratorStatics.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlFormatReaderGenerator.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlFormatWriterGenerator.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlObjectSerializer.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlObjectSerializerContext.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlObjectSerializerReadContext.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlObjectSerializerReadContextComplex.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlObjectSerializerWriteContext.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlObjectSerializerWriteContextComplex.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlReaderDelegator.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlSerializableReader.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlSerializableServices.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlSerializableWriter.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XmlWriterDelegator.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XPathQueryGenerator.cs" />
    <Compile Include="$(RuntimeSerializationSources)\XsdDataContractExporter.cs" />
    <Compile Include="$(XmlSources)\ArrayHelper.cs" />
    <Compile Include="$(XmlSources)\BytesWithOffset.cs" />
    <Compile Include="$(XmlSources)\XmlDictionaryAsyncCheckWriter.cs" />
    <Compile Include="$(XmlSources)\IFragmentCapableXmlDictionaryWriter.cs" />
    <Compile Include="$(XmlSources)\IStreamProvider.cs" />
    <Compile Include="$(XmlSources)\IXmlDictionary.cs" />
    <Compile Include="$(XmlSources)\PrefixHandle.cs" />
    <Compile Include="$(XmlSources)\StringHandle.cs" />
    <Compile Include="$(XmlSources)\UniqueId.cs" />
    <Compile Include="$(XmlSources)\ValueHandle.cs" />
    <Compile Include="$(XmlSources)\XmlBaseReader.cs" />
    <Compile Include="$(XmlSources)\XmlBaseWriter.cs" />
    <Compile Include="$(XmlSources)\XmlBinaryNodeType.cs" />
    <Compile Include="$(XmlSources)\XmlBinaryReader.cs" />
    <Compile Include="$(XmlSources)\XmlBinaryReaderSession.cs" />
    <Compile Include="$(XmlSources)\XmlBinaryWriter.cs" />
    <Compile Include="$(XmlSources)\XmlBinaryWriterSession.cs" />
    <Compile Include="$(XmlSources)\XmlBufferReader.cs" />
    <Compile Include="$(XmlSources)\XmlCanonicalWriter.cs" />
    <Compile Include="$(XmlSources)\XmlConverter.cs" />
    <Compile Include="$(XmlSources)\XmlDictionary.cs" />
    <Compile Include="$(XmlSources)\XmlDictionaryWriter.cs" />
    <Compile Include="$(XmlSources)\XmlDictionaryReader.cs" />
    <Compile Include="$(XmlSources)\XmlDictionaryReaderQuotas.cs" />
    <Compile Include="$(XmlSources)\XmlDictionaryString.cs" />
    <Compile Include="$(XmlSources)\XmlExceptionHelper.cs" />
    <Compile Include="$(XmlSources)\XmlNodeWriter.cs" />
    <Compile Include="$(XmlSources)\XmlSigningNodeWriter.cs" />
    <Compile Include="$(XmlSources)\XmlStreamNodeWriter.cs" />
    <Compile Include="$(XmlSources)\XmlUTF8TextReader.cs" />
    <Compile Include="$(XmlSources)\XmlUTF8TextWriter.cs" />
    <Compile Include="$(XmlSources)\EncodingStreamWrapper.cs" />
    <Compile Include="$(TextSources)\Base64Encoding.cs" />
    <Compile Include="$(TextSources)\SurrogateChar.cs" />
    <Compile Include="$(TextSources)\BinHexEncoding.cs" />
    <Compile Include="$(JsonSources)\ByteArrayHelperWithString.cs" />
    <Compile Include="$(JsonSources)\DataContractJsonSerializer.cs" />
    <Compile Include="$(JsonSources)\DataContractJsonSerializerExtensions.cs" />
    <Compile Include="$(JsonSources)\DataContractJsonSerializerSettings.cs" />
    <Compile Include="$(JsonSources)\DateTimeFormat.cs" />
    <Compile Include="$(JsonSources)\EmitTypeInformation.cs" />
    <Compile Include="$(JsonSources)\IXmlJsonReaderInitializer.cs" />
    <Compile Include="$(JsonSources)\IXmlJsonWriterInitializer.cs" />
    <Compile Include="$(JsonSources)\JsonByteArrayDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonClassDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonCollectionDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonEncodingStreamWrapper.cs" />
    <Compile Include="$(JsonSources)\JsonEnumDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonFormatGeneratorStatics.cs" />
    <Compile Include="$(JsonSources)\JsonFormatReaderGenerator.cs" />
    <Compile Include="$(JsonSources)\JsonFormatWriterGenerator.cs" />
    <Compile Include="$(JsonSources)\JsonGlobals.cs" />
    <Compile Include="$(JsonSources)\JsonNodeType.cs" />
    <Compile Include="$(JsonSources)\JsonObjectDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonQNameDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonReaderDelegator.cs" />
    <Compile Include="$(JsonSources)\JsonReaderWriterFactory.cs" />
    <Compile Include="$(JsonSources)\JsonWriterDelegator.cs" />
    <Compile Include="$(JsonSources)\JsonStringDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonUriDataContract.cs" />
    <Compile Include="$(JsonSources)\JsonXmlDataContract.cs" />
    <Compile Include="$(JsonSources)\ReflectionJsonFormatReader.cs" />
    <Compile Include="$(JsonSources)\ReflectionJsonFormatWriter.cs" />
    <Compile Include="$(JsonSources)\XmlJsonReader.cs" />
    <Compile Include="$(JsonSources)\XmlJsonWriter.cs" />
    <Compile Include="$(JsonSources)\XmlObjectSerializerReadContextComplexJson.cs" />
    <Compile Include="$(JsonSources)\XmlObjectSerializerWriteContextComplexJson.cs" />
    <Compile Include="$(CommonPath)System\CodeDom\CodeTypeReference.cs" />
    <Compile Include="$(CommonPath)System\CodeDom\CodeTypeReferenceCollection.cs" />
    <Compile Include="$(CommonPath)System\CodeDom\CodeObject.cs" />
    <Compile Include="System\Runtime\Serialization\ContextAware.cs" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="$(LibrariesProjectRoot)System.Text.RegularExpressions\gen\System.Text.RegularExpressions.Generator.csproj"
                      ReferenceOutputAssembly="false"
                      SetTargetFramework="TargetFramework=netstandard2.0"
                      OutputItemType="Analyzer" />
    <Reference Include="System.Collections" />
    <Reference Include="System.Collections.Concurrent" />
    <Reference Include="System.Collections.NonGeneric" />
    <Reference Include="System.Collections.Specialized" />
    <Reference Include="System.Linq" />
    <Reference Include="System.Memory" />
    <Reference Include="System.Reflection.Emit.ILGeneration" />
    <Reference Include="System.Reflection.Emit.Lightweight" />
    <Reference Include="System.Reflection.Primitives" />
    <Reference Include="System.Runtime" />
    <Reference Include="System.Runtime.Intrinsics" />
    <Reference Include="System.Runtime.Loader" />
    <Reference Include="System.Runtime.Serialization.Formatters" />
    <Reference Include="System.Runtime.Serialization.Primitives" />
    <Reference Include="System.Text.Encoding.Extensions" />
    <Reference Include="System.Text.RegularExpressions" />
    <Reference Include="System.Threading" />
    <Reference Include="System.Threading.Thread" />
    <Reference Include="System.Xml.ReaderWriter" />
    <Reference Include="System.Xml.XDocument" />
    <Reference Include="System.Xml.XmlSerializer" />
  </ItemGroup>

</Project>
